package com.seedwill.common.view;

import java.util.List;

public interface IPageView {
	/**
	 * 取每页数据容量.
	 * @return
	 */
	int getPageSize();

	/**
	 * 取总页数.
	 * @return
	 */
	int getTotalPage();

	/**
	 * 取总记录数.
	 * @return
	 */
	int getTotal();

	/**
	 *  取当前页中的记录.
	 * @return
	 */
	List getList();

	/**
	 * 取该页当前页码,页码从1开始.
	 * @return
	 */
	int getCurrentPageNo();

	/**
	 * 该页是否有上一页.
	 * @return
	 */
	boolean hasPreviousPage();

	/**
	 * 该页是否有下一页.
	 * @return
	 */
	boolean hasNextPage();

	/**
	 * 默认分页容量
	 * @return
	 */
	int getDefaultPageSize();

	/**
	 * 默认开始页号
	 * @return
	 */
	int getDefaultStartPageNo();


	/**
	 * 获取任一页第一条数据在数据集的位置，每页条数使用默认值.
	 *
	 * @see #getStartOfPage(int,int)
	 */
	public int getStartOfPage(int pageNo);

	/**
	 * 获取任一页第一条数据在数据集的位置.
	 *
	 * @param pageNo   从1开始的页号
	 * @param pageSize 每页记录条数
	 * @return 该页第一条数据
	 */
	public int getStartOfPage(int pageNo, int pageSize);

	public int getStart();

	public void setStart(int start);

	public int getTotalCount();

	public void setTotalCount(int totalCount);

	public void setPageSize(int pageSize);

	public void setList(List list);
	
	public int getStartPage();

	public void setStartPage(int startPage);

	public int getEndPage();

	public void setEndPage(int endPage);
	/**
	 * 准备分页数据
	 * @param num
	 * @param size
	 * @param total    total
	 * 
	 */
	public void prepare(int num, int size, int total);

	public int getViewStart();

	public void setViewStart(int viewStart);

	public int getViewEnd();

	public void setViewEnd(int viewEnd);

	public boolean isHasPrevious();

	public void setHasPrevious(boolean hasPrevious);

	public int getPreviousPageNumber();

	public void setPreviousPageNumber(int previousPageNumber);

	public boolean isHasNext();

	public void setHasNext(boolean hasNext);

	public int getNextPageNumber();

	public void setNextPageNumber(int nextPageNumber);
	
	
	public int getLastPageNumber();
	
	public void setLastPageNumber(int lastPageNumber);
	
	public int getPageNavStep();

	public void setPageNavStep(int pageNavStep);

}
